package DesignMode.Singleton;

/**
 * 饿汉式 + 懒加载(静态内部类实现了懒加载)
 *
 * 静态内部类保证了懒加载，单例实例优先提供又保证了线程安全性，较实用。
 */
public class Singleton4 {
    //多个线程同时竞争这里的时候，JVM只允许一个 SingletonHolder 初始化，所以是安全的
    private static class SingletonHolder{
        private static Singleton4 singleton4 = new Singleton4();
    }

    private Singleton4() {}

    public static Singleton4 getSingleton4() {
        return SingletonHolder.singleton4;
    }

}
